---
id: 65e1b46e500d930ce8ed90ad
title: Вивчіть змінні та оператори. Запитання I
challengeType: 15
dashedName: learn-variables-and-operators-question-i
---

# --description--

Збільшення або зменшення числа на одиницю — найпоширеніша операція над числами.

Для цього існують спеціальні оператори:

- Збільшення `++` збільшує змінну на 1:

```js
let counter = 2;

// works the same as counter = counter + 1, but is shorter
counter++;      

console.log(counter); // 3
```

- Зменшення `--` зменшує змінну на 1:

```js
let counter = 2;

// works the same as counter = counter - 1, but is shorter
counter--;

console.log(counter); // 1
```

Оператори `++` та `--` можна розмістити або перед, або після змінної.

- Якщо оператор розташований після змінної, це постфікс: `counter++`.

- Якщо оператор розташований перед змінною, це префікс: `++counter`.

Обидві інструкцію роблять одне і те ж: збільшують `counter` на `1`.

Чи є якась різниця? Так, але її можна побачити лише тоді, коли використаєте повернене значення `++/--`.

Уточнимо. Як відомо, всі оператори повертають значення. Збільшення/зменшення не є виключенням. Префікс повертає нове значення, а постфікс — старе (перед збільшенням/зменшенням).

Щоб побачити різницю, ось приклад:

```js
let counter = 1;
let a = ++counter; // (*)

console.log(a); // 2
```

Зробимо висновки:

- Якщо результат збільшення/зменшення не використовується, то неважливо, яку форму використовувати:

```js
let counter = 0;
counter++;
++counter;

console.log( counter ); // 2, the lines above did the same
```

- Якщо ви хочете збільшити значення та одразу ж використати результат оператора, то потрібна форма «префікс»:

```js
let counter = 0;
console.log( ++counter ); // 1
```

- Якщо ви хочете збільшити значення, але використовувати попереднє значення, то потрібна форма «постфікс»:

```js 
let counter = 0;
console.log( counter++ ); // 0
```

# --question--

## --text--

Яка різниця між результатом двох інструкцій в коді JavaScript нижче?

```js
let counter = 1;
console.log(2 * ++counter); // Statement A

let counter = 1;
console.log(2 * counter++); // Statement B
```

## --answers--

Жодної різниці; обидві інструкції покажуть однаковий результат.

---

Результатом інструкції A буде `4`, оскільки `++counter` збільшує значення перед множенням. Результатом інструкції B буде `2`, оскільки `counter++` збільшує значення після множення.

---

Результатом інструкції A буде `2`, оскільки `++counter` є синтаксичною помилкою. Результатом інструкції B буде `4`, оскільки `counter++` є правильним способом збільшити лічильник.

---

Результатом обох інструкцій буде `3`, оскільки в обох випадках лічильник збільшується перед `console.log`.


## --video-solution--

2
